
public class Penalty {

public static double f1(double delay,int deadline)
{
	if(delay>=deadline)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

public static double f(double delay,int deadline)
{
	
	/**
	 * 2013.6.17修改，4种函数图像下进行数据测量
	 */
	//a)
	if(delay<deadline)
	{
		return 0;
	}
	else
	{
		return 1;
	}
	
	//b)
//	if(delay<deadline)
//	{
//		return 0;
//	}
//	else
//	{
//		return (delay-deadline)*(1.0/deadline);
//	}
	
	//c)
//	if(delay<deadline)
//	{
//		return delay*(1.0/deadline);
//	}
//	else
//	{
//		return 2.0;
//	}
	
	//d)
//	if(delay<deadline)
//	{
//		return delay*(1.0/deadline);
//	}
//	else
//	{
//		return 1+(delay-deadline)*(2.0/deadline);
//	}
	
	
	
//	/**
//	 * f7
//	 */
//	if(delay>deadline)
//	{
//		return 1.0+(delay-deadline)*(2.0/deadline);
//	}
//	else
//	{
//		return delay*(1.0/deadline);
//	}
	 
//	/**
//	 * f4:same omega
//	 */
//	if(delay>deadline)
//	{
//		return 1+(2.0*(delay-deadline)*(1.0/3.0));
//	}
//	else
//	{
//		return (delay)*(1.0/3.0);
//	}
	
	
//	/**
//	 * f5
//	 */
//	if(delay>deadline)
//	{
//		return ((1.0/100.0)*deadline)+(delay-deadline)*(2.0/100.0);
//	}
//	else
//	{
//		return delay*(1.0/100.0);
//	}
	
//	/**
//	 * f6：将omega和deadline相分离
//	 */
//	double omega=1.0/((deadline*0.01)*(deadline*0.01));
//	double k=omega/deadline;
//	if(delay>deadline)
//	{
//		return omega+(delay-deadline)*2*k;
//	}
//	else
//	{
//		return delay*k;
//	}
	
//	/**
//	 * f4
//	 */
//	if(delay>deadline)
//	{
//		return 1+(2.0*(delay-deadline)*(1.0/deadline)/(37.0/1600.0));
//	}
//	else
//	{
//		return (delay)*(1.0/deadline)/(37.0/1600.0);
//	}
	
	
//	/**
//	 * f3
//	 */
//	if(delay>deadline)
//	{
//		return 1+(2.0*(1.0/deadline)/(526.0/5000.0));
//	}
//	else
//	{
//		return (delay)*(1.0/deadline)/(526.0/5000.0);
//	}
	
//	/**
//	 * f1
//	 */
//	if(delay>=deadline)
//	{
//		return (1.0/deadline)/(526.0/5000.0);
//	}
//	else
//	{
//		return 0;
//	}
	
	
//	/**
//	 * f2
//	 */
//	if(delay>=deadline)
//	{
//		return (delay-deadline)*(1.0/deadline)/(526.0/5000.0);
//	}
//	else
//	{
//		return 0;
//	}
}
}
